package com.cyzy.homework.service;

import com.cyzy.homework.dto.UserDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 用户服务接口
 */
public interface UserService {
    
    /**
     * 根据ID查询用户（包含健康码信息）
     */
    UserDTO getUserById(Integer id);
    
    /**
     * 根据用户名查询用户（包含健康码信息）
     */
    UserDTO getUserByUsername(Integer username);
    
    /**
     * 获取所有用户列表（分页）
     */
    Page<UserDTO> getAllUsers(Pageable pageable);
    
    /**
     * 根据角色查询用户列表
     */
    List<UserDTO> getUsersByRole(Integer role);
    
    /**
     * 根据班级ID查询学生列表
     */
    List<UserDTO> getStudentsByClassId(Integer classId);
    
    /**
     * 根据班级ID查询班级中的所有用户
     */
    List<UserDTO> getUsersByClassId(Integer classId);
    
    /**
     * 获取所有教师列表
     */
    List<UserDTO> getAllTeachers();
    
    /**
     * 获取所有学生列表
     */
    List<UserDTO> getAllStudents();
    
    /**
     * 更新用户基本信息
     */
    UserDTO updateUserProfile(Integer id, UserDTO userDTO);
    
    /**
     * 获取用户健康码状态
     */
    UserDTO getUserHealthCode(Integer id);
    
    /**
     * 检查用户是否存在
     */
    boolean userExists(Integer username);
    
    /**
     * 用户登录验证
     */
    UserDTO login(Integer username, String password);
    
    /**
     * 用户注册
     */
    UserDTO register(UserDTO userDTO, String password);
}





